
package com.jc.platform.liyonghui.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


import com.jc.platform.common.supers.AbstractVO;
import com.alibaba.fastjson.annotation.JSONField;
import com.jc.platform.liyonghui.vo.SalesContractStageVO;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import com.jc.platform.liyonghui.group.Update;
import com.jc.platform.liyonghui.group.Insert;
import javax.validation.constraints.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.math.*;
import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jc.platform.common.utils.DateUtil;


/**
 * ClassName SalesContractVO.java
 * Description 
 *
 * @author liyonghui
 * @version 3.0
 * @date 
 */
@ApiModel(value = "SalesContractVO", description = "")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode(of = { "id" }, callSuper = false)
public class SalesContractVO extends AbstractVO implements Serializable
{
    private static final long serialVersionUID = 1L;

    /**
     * 实体编码
     */
    public static final String IS_ENTITY_CODE = "ffdae85f53dd4314a6870e2d1328061c";

    /**
     * 主键
     */
    @ExcelIgnore
    @NotNull(groups = Update.class, message = "主键不能为Null")
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 签订单位
     */
    @ExcelProperty(value = "签订单位")
    @NotNull(message = "签订单位不可以为空")
    @ApiModelProperty(value = "签订单位")
    private Long principalPartId;
    /**
     * 阶段结束时间
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "阶段结束时间")
    @NotNull(message = "阶段结束时间不可以为空")
    @ApiModelProperty(value = "阶段结束时间")
    private Date stageDate;
    /**
     * 名称
     */
    @ExcelProperty(value = "名称")
    @NotNull(message = "名称不可以为空")
    @ApiModelProperty(value = "名称")
    private String name;
    /**
     * 地图
     */
    @ExcelIgnore
    @ApiModelProperty(value = "地图")
    private Long areaId;
    /**
     * 负责人
     */
    @ExcelProperty(value = "负责人")
    @NotNull(message = "负责人不可以为空")
    @ApiModelProperty(value = "负责人")
    private Long manager;
    /**
     * 销售合同ID
     */
    @ExcelProperty(value = "销售合同ID")
    @NotNull(message = "销售合同ID不可以为空")
    @ApiModelProperty(value = "销售合同ID")
    private String salesContractId;
    /**
     * 签订日期
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "签订日期")
    @NotNull(message = "签订日期不可以为空")
    @ApiModelProperty(value = "签订日期")
    private Date signDate;
    /**
     * 编码
     */
    @ExcelProperty(value = "编码")
    @ApiModelProperty(value = "编码")
    private String code;
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "开始时间")
    @NotNull(message = "开始时间不可以为空")
    @ApiModelProperty(value = "开始时间")
    private Date startDate;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "结束时间")
    @NotNull(message = "结束时间不可以为空")
    @ApiModelProperty(value = "结束时间")
    private Date endDate;
    /**
     * 合同金额（元）
     */
    @ExcelProperty(value = "合同金额（元）")
    @NotNull(message = "合同金额（元）不可以为空")
    @ApiModelProperty(value = "合同金额（元）")
    private BigDecimal money;
    /**
     * 合同文件
     */
    @ExcelProperty(value = "合同文件")
    @NotNull(message = "合同文件不可以为空")
    @ApiModelProperty(value = "合同文件")
    private String filePath;
    @ExcelIgnore
    private List<FileInfoVO> filePathFileList;
    /**
     * 创建人ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "创建人ID")
    private Long createId;
    /**
     * 创建人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "创建人")
    private String createName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @ExcelIgnore
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改人ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "修改人ID")
    private Long modifyId;
    /**
     * 修改人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "修改人")
    private String modifyName;
    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @ExcelIgnore
    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;
    /**
     * 扩展字段
     */
    @ExcelIgnore
    @ApiModelProperty(value = "扩展字段")
    private String extension;
    /**
     * 租户ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;
    /**
     * 集团ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "集团ID")
    private Long groupId;
    /**
     * 机构ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "机构ID")
    private Long orgId;
    /**
     * 部门ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门ID")
    private Long deptId;
    /**
     * 导入数据时集合
     */
    @ExcelIgnore
    @Valid
    List<SalesContractVO> importExcelList;
    /**
     * 删除文件集合
     */
    @ExcelIgnore
    private List<FileInfoVO> delFileList;
    /**
     * 销售合同阶段新增或修改集合
     */
    @ExcelIgnore
    private List<SalesContractStageVO> salesContractStageList;
    /**
     * 销售合同阶段删除集合
     */
    @ExcelIgnore
    private List<Long> delSalesContractStageList;

    @ExcelIgnore
    private List<Long> partnerList;

    @ExcelIgnore
    @ApiModelProperty(value = "多对多引用")
    private List<PartnerVO> partnerPOList;


}

